<?php

class DepartamentoDao extends Dao {

    public function injectDependencies() {

    }

    public function findById($IDDepartamento) {
        $this->initConnection();
        $this->tMysqli->escape($IDDepartamento);
        $StSql = TQuery::getSqlFindDepartamentById($IDDepartamento);
        $tQuery = $this->tMysqli->exec($StSql);
        while( $ArDepartamentoData = mysqli_fetch_assoc($tQuery) ) {
            $Departamento = new Departamento($ArDepartamentoData['IDDepartamento'], $ArDepartamentoData['StDepartamento'], false, $this->tMysqli);
        }
        $this->closeConnection();
        return !empty($Departamento) ? $Departamento : false;
    }

    /**
     * @method  findAll
     *
     * Selecionar todos os departamentos cadastrados no sistema.
     *
     * @since   Dezembro de 2011
     * @author  Richard Brandao<richardsbrandao@gmail.com>
     * @return  array
     */
    public function findAll() {
        $StSql = TQuery::getSqlFindAllDepartaments();
        $this->initConnection();
        $tQuery = $this->tMysqli->exec($StSql);
        $ArDepartaments = array();
        while($ArDepartament = mysqli_fetch_assoc($tQuery)) {
            $ArDepartaments[] = new Departamento($ArDepartament['IDDepartamento'], $ArDepartament['StDepartamento'], false, $this->tMysqli);
        }
        $this->closeConnection();
        return $ArDepartaments;
    }

    //08-4
    public function save($StDepartamento) {
        $this->initConnection();
        $this->tMysqli->escape($StDepartamento);
        $StSql = TQuery::getSqlInsertDepartament($StDepartamento);
        $this->tMysqli->exec($StSql);
        $BoReturn = $this->tMysqli->lastQueryReturn();
        $this->closeConnection();
        return $BoReturn;
    }

    //15-04
    public function update($ArDados) {
        $this->initConnection();
        $this->tMysqli->escape($ArDados);
        $StSql = TQuery::getSqlUpdateDepartament($ArDados['IDDepartamento'], $ArDados['StDepartamento']);
        $this->tMysqli->exec($StSql);
        $BoReturn = $this->tMysqli->lastQueryReturn();
        $this->closeConnection();
        return $BoReturn;
    }
    //01-06
    public function delete($IDDepartamento) {
        $this->initConnection();
        $this->tMysqli->escape($IDDepartamento);
        $StSql = TQuery::getSqlDeleteDepartament($IDDepartamento);
        $this->tMysqli->exec($StSql);
        $BoReturn = $this->tMysqli->lastQueryReturn();
        $this->closeConnection();
        return $BoReturn ;
    }

}

?>
